// Logistics/ScanNavigator/ScanNavigator.js
/*
* {
单元名称：导航分拣页面js
单元功能：扫小程序码进入页面导航到相应操作页面，获取小程序码传入的参数
所属模块功能：
创建人：yan
创建时间：230830
修改人：
修改时间：
}*/
import {GetUrlString} from "../utils/utils";

Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  login(sysid){
    return new Promise(resolve => {
        wx.login({
          success: res => {
            wx.showLoading({ mask: true, });
            let post = {
              code: res.code,
              system_id: sysid,
              system_type: 'WL',
            };
            wx.$post(1,'Authorize/Token_miniprogram',post).then(res => {
              if (res.errcode != 0) return;
              let {miniprogram_OpenID,token,refresh_token,system_id} = res.data.row[0] || {};
              let storageObj = {
                openid: miniprogram_OpenID,
                loginType: 'noLogin',
                refresh: refresh_token,
                token,
                system_type: 'WL'
              };
              Object.entries(storageObj).forEach(([key, val]) => wx.setStorageSync(key, val));
              this.getUserInfo(miniprogram_OpenID);
              wx.$getBarTitle(system_id);
              wx.hideLoading();
              resolve();
            })
          },
          fail: () =>{
            wx.navigateTo('/Logistics/Login/Login')
          }
        })
    })
  },

  //直接使用用户，获取用户信息
  getUserInfo(openid){

    let url = 'WXMiniProgram/get_miniprogram_customer_user_inf',
      post = {
        // "system_id": 0,
        // "unionid": "string",
        "miniprogram_OpenID": openid,
        // "offiaccount_OpenID": "string"
      };
    wx.$post(1,url,post).then(res => {
      if (res.errcode != 0) return;
      let data = res.data.row,
        name = data[0] && data[0].Nickname || openid;
      wx.setStorageSync('user_name',name)
    })
  },

  //导航
  /*
  * 参数1：系统类型（如：DIY/WL）
    参数2：系统号（如：1150）
    参数3：登录方式（如：UP【普通登录用户密码】/WXC【微信登录凭证码】）
    参数4：运单号（xxxxxx）
    参数5：操作入口1（如：装货/运输/签收/货损/运单情况）
    参数6：操作入口2（如：录入/查询）
    参数7：操作入口3（如：备用）
  * */
  navigateTo(options){
    let {param1,param2,param3,param4,param5,param6,param7} = options;
    //物流系统
    if (param1 === 'WL'){
      //微信code 直接登录
      if (param3 === 'WXC'){
        this.login(param2).then(() => {
          let urlObj = {
              ['装货']: `/Logistics/LoadGoods/LoadGoods`,
              ['运输']: `/Logistics/Transport/Transport`,
              ['签收']: `/Logistics/Sign/Sign`,
              ['货损录入']: `/Logistics/InputDamage/InputDamage`,
              ['货损查询']: '/Logistics/SearchDamage/SearchDamage',
              ['运单情况']: `/Logistics/Waybill/Waybill`,
            },
            url = param5 ? urlObj[param5] : '';
          // url = url ? url : `/Logistics/Index/Index?orderid=${param4}`
          wx.redirectTo({ url: `/Logistics/Index/Index?redirect=${url}&orderid=${param4 || ''}` })
        })
      }else {
        //账号密码登录跳转到登录页面
        wx.navigateTo('/Logistics/Logins/Logins')
      }
    }else {
      //diy系统跳转到登录页面
      wx.navigateTo({url: '/pages/login/login'})
    }
  },

  //  短码换取二维码参数
  getShortSource(code){
    return new Promise(resolve => {
      let url = 'WL/Get_short_to_Source'
      wx.$get(5,url,{data_in: code}).then(res => {
        if (res.errcode != 0) {
          resolve()
          return;
        }
        let code = res.data.row[0] && res.data.row[0].yuanma
        resolve(code)
      })
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    console.log(options);
    // let data = decodeURIComponent(options.scene),
    let data = decodeURIComponent(options.q),
      arr = data.split('&'),
      obj = {};
    /*arr.forEach(item => {
      let kv = item.split('=');
      obj[kv[0]] = kv[1]
    });*/
    /*for (let i = 1;i<8;i++){
      let item = 'param' + i
      obj[item] = GetUrlString(data,item);
    }*/
    let dm = wx.$util.GetUrlString(data,'dm');
    if (dm){
      await this.getShortSource(dm).then(res => {
        if (res) {
          let arr = res.split('&');
          arr.forEach(item => {
            let kv = item.split('=');
            obj[kv[0]] = kv[1]
          });
        }
      })
    } else {
      for (let i = 1;i<8;i++){
        let item = 'param' + i
        obj[item] =  wx.$util.GetUrlString(data,item);
      }
    }
    this.navigateTo(obj);

    // this.navigateTo(obj);

    /*wx.navigateTo({
      url: 'http://k21:cv/9:x+wa)mwP1P+Ze'
    })*/
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})
